package com.gitee.helioz.openai.api.dto.audio;

import com.gitee.helioz.openai.common.util.http.HttpFilePart;
import com.google.gson.annotations.SerializedName;
import lombok.Data;

/**
 * 〈翻译请求〉
 *
 * @author <a href="https://gitee.com/helioz">Morning Starr</a>
 */
@Data
public class TranslationsRequest {
    /**
     * 音频文件数据，求音频文件以mp3、mp4、mpeg、mpga、m4a、wav或webm这些格式之一进行传递。
     * <pre>
     * 可以通过以下方式之一传递：
     * URL：提供音频文件的在线URL地址，接口将从该地址下载音频文件。
     * 文件引用：提供音频文件在OpenAI文件API中的文件引用ID，接口将从文件API获取音频文件。</pre>
     * 注意，音频文件的格式必须与接口要求的格式一致，否则可能导致接口无法正确处理音频文件或返回错误结果。
     * <pre>必填</pre>
     */
    private HttpFilePart file;
    /**
     * 模型ID，目前只支持这一种：whisper-1
     * <pre>必填</pre>
     */
    private String model;
    /**
     * 一个可选的文本，用于指导模型的风格或延续前一个音频段落。提示文本应与音频的语言匹配。
     * <pre>选填</pre>
     */
    private String prompt;
    /**
     * 默认值：json，输出的转录文本的格式，可选择以下选项之一：json、text、srt、verbose_json或vtt。
     * <pre>选填</pre>
     */
    @SerializedName("response_format")
    private String responseFormat;
    /**
     * 默认值：0，采样温度，介于0和1之间。较高的值如0.8会使输出更随机，而较低的值如0.2会使输出更加聚焦和确定性。
     * 如果设置为0，模型将使用对数概率自动增加温度，直到达到一定的阈值。
     * <pre>选填</pre>
     */
    private Double temperature;

}
